home *** CD-ROM | disk | FTP | other *** search
/ PC World Komputer 2010 April / PCWorld0410.iso / hity wydania / Ubuntu 9.10 PL / karmelkowy-koliberek-desktop-9.10-i386-PL.iso / casper / filesystem.squashfs / var / lib / dpkg / info / hplip.postinst < prev    next >
Text File  |  2009-10-09  |  5KB  |  130 lines

  1. #! /bin/sh
  2. # postinst script for hplip
  3. # $Id: hplip.postinst,v 1.1 2005/10/15 21:39:04 hmh Exp $
  4. #
  5. # see: dh_installdeb(1)
  6.  
  7. set -e
  8.  
  9. # summary of how this script can be called:
  10. #        * <postinst> `configure' <most-recently-configured-version>
  11. #        * <old-postinst> `abort-upgrade' <new version>
  12. #        * <conflictor's-postinst> `abort-remove' `in-favour' <package>
  13. #          <new-version>
  14. #        * <deconfigured's-postinst> `abort-deconfigure' `in-favour'
  15. #          <failed-install-package> <version> `removing'
  16. #          <conflicting-package> <version>
  17. # for details, see http://www.debian.org/doc/debian-policy/ or
  18. # the debian-policy package
  19. #
  20. # quoting from the policy:
  21. #     Any necessary prompting should almost always be confined to the
  22. #     post-installation script, and should be protected with a conditional
  23. #     so that unnecessary prompting doesn't happen if a package's
  24. #     installation fails and the `postinst' is called with `abort-upgrade',
  25. #     `abort-remove' or `abort-deconfigure'.
  26.  
  27. case "$1" in
  28.     configure)
  29.     # add hplip system user (requires adduser >= 3.34)
  30.     # don't muck around with this unless you KNOW what you're doing
  31.     echo "Creating/updating hplip user account..."
  32.     adduser --system --ingroup lp --home /var/run/hplip \
  33.         --gecos "HPLIP system user" --shell /bin/false \
  34.         --quiet --disabled-password hplip || {
  35.       # adduser failed. Why?
  36.       if getent passwd hplip >/dev/null ; then
  37.          echo "Non-system user hplip found. I will not overwrite a non-system" >&2
  38.          echo "user.  Remove the user and reinstall hplip." >&2
  39.          exit 1
  40.       fi
  41.       # unknown adduser error, simply exit
  42.       exit 1
  43.     }
  44.  
  45.     for i in /var/run/hplip
  46.     do
  47.         if ! dpkg-statoverride --list $i > /dev/null
  48.         then
  49.             dpkg-statoverride --update --add hplip root 755 $i
  50.         fi
  51.     done
  52.  
  53.  
  54.     # Remove shutdown and reboot links; this init script does not need them.
  55.     if dpkg --compare-versions "$2" lt "1.7.3-0ubuntu4"; then
  56.         update-rc.d -f hplip remove
  57.     fi
  58.  
  59.     # Fix PPD file paths in /etc/hp/hplip.conf to make sure that hp-setup
  60.     # finds the fax PPDs
  61.     perl -p -i -e 's:^(\s*ppd=).*$:\1/usr/share/ppd/hplip/HP:' /etc/hp/hplip.conf
  62.     perl -p -i -e 's:^(\s*ppdbase=).*$:\1/usr/share/ppd/hplip:' /etc/hp/hplip.conf
  63.  
  64.         # Do the following only if CUPS is running and the needed CUPS tools
  65.         # are available
  66.     if which lpstat > /dev/null 2>&1 && \
  67.         which lpinfo > /dev/null 2>&1 && \
  68.         which lpadmin > /dev/null 2>&1 && \
  69.         LC_ALL=C lpstat -h /var/run/cups/cups.sock -r | grep -v not > /dev/null 2>&1; then
  70.         # Update the PPD files of all already installed print queues
  71.         driverregexp='lsb/usr/hplip/HP/.*-ps.ppd'
  72.         gennicknameregexp='s/\s*(v\d+\.\d+|(Ver|-\s*RC)\s*[\d\.]+)//'
  73.         [ ! -z "$gennicknameregexp" ] && \
  74.         gennicknameregexp="; $gennicknameregexp"
  75.         gennicknameregexp='s/\s*\(recommended\)//'"$gennicknameregexp"
  76.         tempfiles=
  77.         trap 'rm -f $tempfiles; exit 0' 0 HUP INT QUIT ILL ABRT PIPE TERM
  78.         tmpfile1=`mktemp -t updateppds.XXXXXX`
  79.         tempfiles="$tempfiles $tmpfile1"
  80.         lpinfo -h /var/run/cups/cups.sock -m | grep -E $driverregexp > $tmpfile1
  81.         cd /etc/cups/ppd
  82.         for ppd in *.ppd; do
  83.         [ -r "$ppd" ] || continue
  84.         queue=${ppd%.ppd}
  85.         lpstat -h /var/run/cups/cups.sock -p "$queue" >/dev/null 2>&1 || continue
  86.         nickname=`grep '\*NickName:' "$ppd" | cut -d '"' -f 2 | perl -p -e 's/\n$//' | perl -p -e "$gennicknameregexp" | perl -p -e 's/(\W)/\\\\$1/g'`
  87.         lang=`grep '\*LanguageVersion:' "$ppd" | cut -d ' ' -f 2 | perl -e 'print lc(<>)' | perl -p -e 's/[\r\n]//gs'`
  88.         ppdfound="0"
  89.         englishppduri=""
  90.         tmpfile2=`mktemp -t updateppds.XXXXXX`
  91.         tempfiles="$tempfiles $tmpfile2"
  92.         cat $tmpfile1 | perl -p -e "$gennicknameregexp; s/\s*$/\n/" | grep -E '\b'"$nickname"'$' | cut -d ' ' -f 1 > $tmpfile2
  93.         while read newppduri; do
  94.             [ "$ppdfound" = "0" ] && lpadmin -h /var/run/cups/cups.sock -p "$queue" -m $newppduri 2>/dev/null || continue
  95.             newlang=`grep '\*LanguageVersion:' "$ppd" | cut -d ' ' -f 2 | perl -e 'print lc(<>)' | perl -p -e 's/[\r\n]//gs'`
  96.             [ "$newlang" = "$lang" ] && ppdfound="1"
  97.             [ "$newlang" = "english" ] && englishppduri="$newppduri"
  98.         done < $tmpfile2
  99.         [ "$ppdfound" = "0" ] && [ ! -z "$englishppduri" ] && lpadmin -h /var/run/cups/cups.sock -p "$queue" -m $englishppduri 2>/dev/null && ppdfound="1"
  100.         [ "$ppdfound" = "1" ] && echo PPD for printer $queue updated >&2
  101.         done
  102.     fi
  103.     ;;
  104.  
  105.     abort-upgrade|abort-remove|abort-deconfigure)
  106.     ;;
  107.  
  108.     *)
  109.         echo "postinst called with unknown argument \`$1'" >&2
  110.         exit 1
  111.     ;;
  112. esac
  113.  
  114. # dh_installdeb will replace this with shell code automatically
  115. # generated by other debhelper scripts.
  116.  
  117. # Automatically added by dh_installmenu
  118. if [ "$1" = "configure" ] && [ -x "`which update-menus 2>/dev/null`" ]; then
  119.     update-menus
  120. fi
  121. # End automatically added section
  122. # Automatically added by dh_makeshlibs
  123. if [ "$1" = "configure" ]; then
  124.     ldconfig
  125. fi
  126. # End automatically added section
  127.  
  128.  
  129. exit 0
  130.